#include <stdio.h>
#include <unistd.h>

//int main()
//{
//  extern char** environ;
//  //environ
//  for(int i = 0;environ[i];i++)
//  {
//    printf("environ[%d]: %s\n",i,environ[i]);
//  }
//
//  return 0;
//}
//

//void Print()
//{
//  printf("hello Print\n");
//  _exit(4);
//}
//
//int main()
//{
//  printf("hello Linux\n");
//
//  sleep(3);
//
////  _exit(1);
//
//  while(1)
//  {
//    printf("I am a process::%d\n",getpid());
//    sleep(1);
//    Print();
//    //_exit(3);//
//  }
//
//  return 0;
//}
//
//

#include <errno.h>
#include <string.h>

enum 
{
  success = 0,
  open_err,
  malloc_err
};

const char* errorToDesc(int code)
{
  switch(code)
  {
    case success:
      return "success"; 
    case malloc_err:
      return "malloc_err";
    case open_err:
      return "open_err";
    default:
      return "unknown error";
  }
}

int Print()
{
    printf("hello Linux\n");
    printf("hello Linux\n");
    printf("hello Linux\n");
    printf("hello Linux\n");
  
    return 0;
}


int main()
{
//  int *p = NULL;
//  while(1)
//  {
//    printf("process is running,pid:%d\n\n",getpid());
//    sleep(1);
//
//    *p = 100;
//  }

  FILE *fp = fopen("./log.txt","r");
  printf("%d:%s\n",errno,strerror(errno));

  int n = Print();
  printf("n=%d\n",n);
  int code = malloc_err;
  printf("%s\n",errorToDesc(code));
  for(int i = 0;i < 200;i++)
  {
    printf("%d:%s\n",i,strerror(i));
  }
  const char* str = "hello Linux";
  //*str = 'H';



  return errno;
}
